<?php
namespace app\common\controller;

use think\Controller;
use think\Db;

class commonApi extends Controller
{
    /**
     * 正则验证 字符串是否满足 字母 数字 长度 等条件 是否满足
     * 注：该方法需要字母和数字混合  纯字母 或者 纯数字 并 可以指定规则
     * true：满足条件 false：不满足
     * @param $str 验证信息
     * @param string $len 指定长度 20
     * @param string $short 指定最短长度 2
     * @param string $condition 满足的条件 ''
     * @return int
     */
    public static function Verification($str,$len='20',$condition='',$short ='2'){
        return preg_match('/^[a-z0-9'.$condition.']{'.$short.','.$len.'}$/',$str);
    }

    /**
     * 判断长度
     * @param $str 需验证的信息
     * @param string $len 指定长度
     * @return bool
     */
    public static function isStrlen($str,$len='20'){
        return mb_strlen($str, 'utf-8') > (int)$len;
    }

    /**
     * 替换  默认：去空处理
     * @param $data 数据源
     * @param string $str 替换成的数据
     * @param string $type 需要的规则正则
     * @return mixed
     */
    public static function pregReplace($data,$str='',$type=''){
        if(empty($type)){
            return preg_replace('/(\s|\&nbsp\;|　|\xc2\xa0)/',$str,$data);
        }else{
            return preg_replace($type,$str,$data);
        }
    }

    /**
     * 替换Emoji表情 为空 ''
     * @param $str
     * @return mixed|string
     */
    public static function removeEmoji($str){
        if(!empty($str)){
            $value = json_encode($str);
            $value = preg_replace("/\\\u[ed][0-9a-f]{3}\\\u[ed][0-9a-f]{3}/","",$value);//替换成 ''
            return json_decode($value);
        }
        return '';
    }

    /**
     * 将一个字符串部分字符用$re替代隐藏
     * @param string    $string   待处理的字符串
     * @param string    $re       替代符
     * @return string   处理后的字符串
     */
    public static function hidestr($string, $re = '*') {
        if(empty($string)){
            return '';
        }
        $len = mb_strlen($string,'utf-8');
        $str = '';
        if($len < 7){
            for($x = 0; $x<$len-1;$x++){
                $str .= $re;
            }
            unset($x);
            unset($len);
            return substr_replace($string,$str,1);
        }elseif($len >6 && $len < 11){
            $str = $re.$re.$re;
            unset($x);
            unset($len);
            return substr_replace($string,$str,3,4);
        }else{
            $str = $re.$re.$re.$re.$re.$re;
            unset($x);
            unset($len);
            return substr_replace($string,$str,4,6);
        }
    }

    /**
     * @param $userid
     * @param $username
     * @param $type
     * @param $info
     * 操作日志
     * Jsky
     * 2020年5月4日17:37:18
     */
    public static function oplog($type,$userid,$username,$info){
        $data['user_id'] = $userid;
        $data['username'] = $username;
        $data['type'] = $type;
        $data['info'] = $info;
        $data['time'] = date("Y-m-d H:i:s");
        Db::name('log')->insert($data);
    }
}
